package com.jeesite.modules.dataScreen.dao.themedb;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jeesite.modules.dataScreen.entity.*;
import com.jeesite.modules.dataScreen.web.vo.supervisor.UnReportItemVo;
import com.jeesite.modules.dataScreen.web.vo.supervisor.UnReportVo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@DS("theme-db")
public interface ThemeDbDao {

    Object test();

    /**
     * @param tjwdfl 统计维度分类(1 船舶 2企业)
     */
    Integer qitaCbqys(@Param("tjwdfl") String tjwdfl);

    /**
     * @param tjwdfl 统计维度分类(1 船舶 2企业)
     */
    Integer kehuoyunCbqys(@Param("tjwdfl") String tjwdfl);

    List<Map<String, String>> getByZbfl(String zbfl);

    Page<Tufashijian> tufashijian(Page<Tufashijian> page);

    Page<Zuduan60> zuduan60(Page<Zuduan60> page);

    Page<Yongdushijian> yongdushijian(Page<Yongdushijian> page);

    Page<Chuanbobaofei> chuanbobaofei(Page<Chuanbobaofei> page);

    Page<SlCbbf> slCbbf(Page<SlCbbf> page);

    Page<SlCbjy> slCbjy(Page<SlCbjy> page);

    Page<GlysGdzdl> glysGdzdl(Page<GlysGdzdl> page);

    Page<GlysSlzzl> glysSlzzl(Page<GlysSlzzl> page);

    List<Tianbao> tianbao();

    /**
     * 填报指标数据查询
     *
     * @param indexName 指标名
     * @param tbdw      填报单位，指标名重复时可以用
     * @param startTime 填报时间 开始时间
     * @param endTime   填报时间 结束数据
     * @return 填报数据
     */
    Tianbao tianbaoValue(@Param("indexName") String indexName,
                         @Param("tbdw") String tbdw,
                         @Param("startTime") String startTime,
                         @Param("endTime") String endTime);

    Tianbao tianbaoLastValue(@Param("indexName") String indexName,
                             @Param("tbdw") String tbdw, @Param("updateName") String update);

    Page<Zjgs> zjgs(Page<Zjgs> page);

    /**
     * 合计
     */
    JSONObject zjgsTotal();

    Page<Cdz> gl_gdcdz(Page<Cdz> page);

    Page<Cdz> gl_ydcdz(Page<Cdz> page);

    Page<Hdz> gl_hdz(Page<Hdz> page);

    Page<Hdz> gl_zkhdz(Page<Hdz> page);

    Page<Jqz> gl_jqz(Page<Jqz> page);

    Page<Sjzj> gl_sjzj(Page<Sjzj> page);

    /**
     * 人车比
     */
    Page<Rcb> jtys_rcbgk(Page<Rcb> page);

    /**
     * 人车比详情
     */
    Page<Rcb> jtys_rcbgkxq(Page<Rcb> page,
                           @Param("sjName") String sjName,
                           @Param("sjContent") String sjContent);


    List<UnReportVo> getUnReport();

    List<UnReportItemVo> getUnReportList(@Param("tbdwName") String tbdwName);


    List<String> expressEnterprise();

    List<JSONObject > businessPremises();

    List<JSONObject> businessPopUp(@Param("name") String name);

    List<JSONObject> enterprisePopUp(String name);

    List<JSONObject> brandClassification(String name);
}
